package Principal;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import About.CargaVentana;
import Instrucciones.TestVentanaInstrucciones;
import Controlador.PruebaControladora;

public class VentanaSuprema extends javax.swing.JFrame {

	private static final long serialVersionUID = 1L;
	
	 // Variables declaration - do not modify
    private javax.swing.JButton Acercade;
    private javax.swing.JButton Instrucciones;
    private javax.swing.JButton Iniciar;
    private javax.swing.JLabel Fondo;
    private javax.swing.JMenu Aplicacion;
    private javax.swing.JMenu Acerca2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JButton salir;
    // End of variables declaration
    
	/** Creates new form NewJFrame */
    public VentanaSuprema() {
    	
        Iniciar = new javax.swing.JButton();
        Instrucciones = new javax.swing.JButton();
        salir = new javax.swing.JButton();
        Acercade = new javax.swing.JButton();
        Fondo = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        Aplicacion = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        Acerca2 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();
        
		this.salir.setIcon(new ImageIcon(this.getClass().getResource("/res/cross_remove_no_image_delete_exit.png")));
		this.Acercade.setIcon(new ImageIcon(this.getClass().getResource("/res/index2_01.png")));
		this.Instrucciones.setIcon(new ImageIcon(this.getClass().getResource("/res/14747143-manual-guide.jpg")));
		this.Iniciar.setIcon(new ImageIcon(this.getClass().getResource("/res/5740795-representacion-3d-de-un-emoticon-fresco-y-divertido-que-muestra-el-camino-con-una-flecha-que.jpg")));
		
		this.Iniciar.setToolTipText("Emulador CPU");
		this.Acercade.setToolTipText("Acerca de");
		this.salir.setToolTipText("Salir");
		this.Instrucciones.setToolTipText("instrucciones");
		
		//agregamos a los oyentes...
		this.salir.addActionListener(new OpSalir());
		this.Instrucciones.addActionListener(new OpInstrucciones());
		this.Iniciar.addActionListener(new Emulador());
		this.Acercade.addActionListener(new AcercaDe());
		this.jMenuItem1.addActionListener(new Emulador());
		this.jMenuItem3.addActionListener(new AcercaDe());
		this.jMenuItem4.addActionListener(new OpInstrucciones());
		this.jMenuItem2.addActionListener(new OpSalir());
		
		this.GeneraVentana();
		this.setTitle("Emulador CPU Ivana Orellana/David Medina");
		this.setSize(843, 490);
		this.setResizable(false);
		this.setVisible(true);
		this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        
    }

	//metodo que nos permite poder generar la ventana principal....
	public void GeneraVentana(){
		
	
		this.salir.setIcon(new ImageIcon(this.getClass().getResource("/res/cross_remove_no_image_delete_exit.png")));
		this.Acercade.setIcon(new ImageIcon(this.getClass().getResource("/res/index2_01.png")));
		this.Instrucciones.setIcon(new ImageIcon(this.getClass().getResource("/res/14747143-manual-guide.jpg")));
		this.Iniciar.setIcon(new ImageIcon(this.getClass().getResource("/res/5740795-representacion-3d-de-un-emoticon-fresco-y-divertido-que-muestra-el-camino-con-una-flecha-que.jpg")));
		
    	getContentPane().setLayout(null);

        Iniciar.setMaximumSize(new java.awt.Dimension(90, 40));
        Iniciar.setMinimumSize(new java.awt.Dimension(90, 40));
        Iniciar.setPreferredSize(new java.awt.Dimension(90, 40));

        getContentPane().add(Iniciar);
        Iniciar.setBounds(288, 353, 90, 40);

        Instrucciones.setMaximumSize(new java.awt.Dimension(90, 40));
        Instrucciones.setMinimumSize(new java.awt.Dimension(90, 40));
        Instrucciones.setPreferredSize(new java.awt.Dimension(90, 40));

        getContentPane().add(Instrucciones);
        Instrucciones.setBounds(101, 353, 90, 40);

        salir.setMaximumSize(new java.awt.Dimension(90, 40));
        salir.setMinimumSize(new java.awt.Dimension(90, 40));
        salir.setPreferredSize(new java.awt.Dimension(90, 40));
        
        getContentPane().add(salir);
        salir.setBounds(651, 353, 90, 40);

        Acercade.setMaximumSize(new java.awt.Dimension(90, 40));
        Acercade.setMinimumSize(new java.awt.Dimension(90, 40));
        Acercade.setPreferredSize(new java.awt.Dimension(90, 40));

        getContentPane().add(Acercade);
        Acercade.setBounds(461, 353, 90, 40);
	    Fondo.setIcon(new javax.swing.ImageIcon(this.getClass().getResource("/res/Inicio.jpg")));
        Fondo.setText("jLabel1");
        getContentPane().add(Fondo);
        Fondo.setBounds(0, 0, 850, 440);

        Aplicacion.setText("Emulador");

        jMenuItem1.setText("Iniciar");
           
        Aplicacion.add(jMenuItem1);

        jMenuItem2.setText("Salir");
        
        Aplicacion.add(jMenuItem2);

        jMenuBar1.add(Aplicacion);

        Acerca2.setText("About");

        jMenuItem3.setText("Acerca de");
        
        Acerca2.add(jMenuItem3);

        jMenuItem4.setText("Como Jugar");
        
        Acerca2.add(jMenuItem4);

        jMenuBar1.add(Acerca2);

        setJMenuBar(jMenuBar1);
        
       pack();
    }// </editor-fold>

	//tanda de innerclas que me permiten poder generar las diversas acciones del programa...
	public class OpSalir implements ActionListener{
			
		public void actionPerformed(ActionEvent e){
				
			System.exit(0);
		}
	}
		
	public class OpInstrucciones implements ActionListener{
			
		public void actionPerformed(ActionEvent e){
				
			new TestVentanaInstrucciones().testVentanaInstrucciones();
		}
	}
		
	//en el caso de que oprima la opcion de iniciar la ventana de emulacion...
	public static class Emulador implements ActionListener{
			
		public void actionPerformed(ActionEvent e){
			
			new PruebaControladora();
		}
	}
		
	//en el caso de que oprima la opcion Acerca de...
	public static class AcercaDe implements ActionListener{
			
		public void actionPerformed(ActionEvent e){
				
			new CargaVentana();
		}
	}
}